The present invention relates generally to the field of code coverage, and more particularly to runtime-directed overlay hooks being used to track code coverage.
Code coverage is a measure used to describe the degree to which the program code of a program is tested by a particular test suite. A program with high code coverage has been more thoroughly tested and has a lower chance of containing software bugs than a program with low code coverage. To measure what percentage of code has been exercised by a test suite, one or more coverage criteria are used: function coverage, statement coverage, branch coverage, and condition coverage. Function coverage requires that each function in the program be called. Statement coverage requires each statement in the program to be executed. Branch coverage requires each branch of each control structure to be executed. Condition coverage requires each Boolean sub-expression to be evaluated both to true and false.
A combination of function coverage and branch coverage is sometimes also called decision coverage. This criterion requires that every point of entry and exit in the program have been invoked at least once, and every decision in the program have taken on all possible outcomes at least once. Modified condition/decision coverage (MC/DC) requires that both decision and condition coverage be satisfied and that each condition should affect the decision outcome independently.